package d1_junit;

import org.junit.*;

//其实idea已经集成了-->Junit框架
public class StringUtilTest {

    //常见注解的应用常见: 场景1: 执行之前的方法用于初始化数据库的连接;执行之后的方法用于关闭数据库的连接(资源)
    //                          实例与static进行分开

    @BeforeClass //修饰静态方法, 在所有的测试方法之前执行一次
    public static void beforeClass(){
        System.out.println("==beforeClass==");
    }

    @AfterClass //修饰静态方法, 在所有的测试方法之后执行一次
    public static void afterClass(){
        System.out.println("==AfterClass==");
    }

    @Before // 修饰实例方法, 在每个测试方法执行之前先执行一次(注意是每一个)
    public void before(){
        System.out.println("===before===");
    }

    @After //修饰实例方法, 在每个测试方法执行之后执行一次
    public void after(){
        System.out.println("===before===");
    }


    //编写的方法: 必须是: 公开, 无参, 无返回值
    @Test//测试方法
    public void testPrintNumber() {
        //专业的说法,就是编写测试用例
        StringUtil.printNumber("admin");
        StringUtil.printNumber(null);
    }

    @Test
    public void testMaxIndex() {
        int index1 = StringUtil.getMaxIndex(null);
        System.out.println(index1);

        int index2 = StringUtil.getMaxIndex("admin");
        System.out.println(index2);

        //断言机制: 程序员可以通过预测业务方法的结果。--------->由于处理业务对不对,不是代码对了就可以了
        Assert.assertEquals("方法内部由bug!", 4, index2);
    }

}
